home *** CD-ROM | disk | FTP | other *** search
- Linker
-
- The linker is used to merge object modules and/or library code
- to make a finished application. This version of the linker also
- merges the run-time relocating loader with your application
- in order to make a stand-alone 32-bit executable.
-
- Unlike other linker products there is no segmentation concept,
- which is either a good or a bad thing depending on your point
- of view.
-
- If your application uses resources (most do), these will can
- be manually merged in afterwards using ResEdit (another free
- program from Apple). Alternatively you can set your resource
- file name in the linker preferences dialog. In this box you
- can also set various other defaults that users with Inside Macintosh
- will be familiar with. For testing, the defaults should be OK
-
- To invoke the linker open all the object browser windows that you
- need, and select the GCC/Link menu option or the GCC/Link(partial)
- menu option. In either case you must have all the libraries you need
- open to avoid errors. Typically this will include the 32 bit multiply
- divide library (gcc-1.37-lib.o) and any libraries of traps needed.
- You can also use shift select to select files for linking in open suitcase
- windows.
-
- There is no smart-linking concept in this application, so a program that
- uses any mac trap glue code must load the entire library. However
- you can build your own libraries using the 'Build library' menu
- Objects in an open library will always be available for linking and will
- be loaded if necessary
-
- In the link/partial case the output is another object module (linker.o)
- which you can inspect with the object browser, in the link (default)
- case the output is an application with signature and default
- size as given by the linker options dialog.
-
- You can execute the new program from the finder. If you need to
- debug you can invoke the Debugger() function as the first line
- of your main routine. Only MacsBug is supported. Function names
- are carried through into MacsBug but data segment names are not.
- If you do not have MacsBug installed, your machine will crash if
- you invoke Debugger().
-